home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
qbbs
/
ptqwkb2.zip
/
PTQWK.ZIP
/
PTQWK.INC
< prev
next >
Wrap
Text File
|
1993-03-18
|
17KB
|
227 lines
(*
PT-QWK Mail Door (C)opyright 1993 by Pasi Talliniemi
This structure file for PT-QWK Mail Door may be distributed freely
as long as it is not modified in any way.
If you have anything on your mind, you can contact me by :
- calling my BBS : El Paso, +358-0-2903463, 24H, v.32bis
- sending netmail :
Internet : pasi.talliniemi@f297.n220.z2.fidonet.org
Fidonet : 2:220/297
Supernet : 42:1201/311
Vnet : 46:9616/80
Delightnet : 105:13581/310
- sending snailmail :
Pasi Talliniemi, Tiilitie 3, SF-05200 Rajam{ki, Finland
Thank you for your attention and interest in PT-QWK Mail Door.
NOTE! This structure file may be changed radically in these
PTQWK beta versions as I am searching for optimum settings.
*)
const
Version = '1.00ß2';
LongVersion = '1.00 Beta-2';
ArchiveCount = 10;
ProtocolCount = 20;
BulletinCount = 5;
type
RegistrationRecord = Record
BBS : String [35]; (* Bulletin board system's name *)
Sysop : String [35]; (* Sysop's name *)
Location : String [35]; (* BBS location *)
PhoneNumber : String [15]; (* BBS phone number *)
RegCode : LongInt; (* Reg.code, if registered, otherwise zero *)
BBSID : String [8]; (* BBS ID - QWK file name *)
BBSID2 : String [2]; (* BBS ID - OMEN file name *)
Empty : Array [1..10] of Byte; (* Empty space *)
end; (* Size 150 bytes *)
ArchiveRecord = Record
Active : Boolean; (* TRUE if this compression is used *)
Extension : String [3]; (* File extension for this compression type *)
Name : String [15]; (* Short extra definition *)
Key : Char; (* Key to select this compression type *)
Compress : String [127]; (* Command line needed to compress file *)
Uncompress : String [127]; (* Command line needed to uncompress file *)
ApproxPack : Byte; (* How long does it take to pack 100 kb? *)
Effic : Byte; (* (Packed_file_size/Original_file_size) % *)
ID : String [35]; (* Archive ID *)
end; (* Size 300 bytes *)
ProtocolRecord = Record
Active : Boolean; (* TRUE if this protocol is used *)
Name : String [15]; (* Short definition for this protocol *)
Key : Char; (* Key to select this protocol *)
Effic : Byte; (* Transfer efficiency, 100 = fast *)
Download : String [127]; (* Command line needed to send file *)
Upload : String [127]; (* Command line needed to receive file *)
Batch : Boolean; (* Can multiple files sent at the same time *)
CreateSBBS : Char; (* Create SBBSFILE.$$$? If yes, protocol ch *)
Empty : Array [1..23] of Byte; (* Empty space *)
end; (* Size 300 bytes *)
(* Variable for bidirectional transfer is not needed because PTQWK checks every *)
(* if replies have been uploaded *)
BulletinRecord = Record
Active : Boolean; (* TRUE if this bulletin is used *)
Name : String [7]; (* Bulletin filename's 7 first chars *)
Empty : Array [1..41] of Byte; (* Empty space *)
end; (* Size 50 bytes *)
FreeMethods = (TimeReturn, NoTimeReturn, CheckTime);
OutMethods = (LocalFileAttach, LeaveToWorkDir, DeleteQWK);
Where = (WorkDirectory, TempDirectory, LocalAttachDirectory);
Where2 = (_LocalAttach, _NetMail);
ConfigInfo = Record (* PTQWKCFG.BBS *)
RegInfo : RegistrationRecord; (* Sorry, one registration per BBS only ! *)
Archive : Array [1..ArchiveCount] of ArchiveRecord; (* Sorry, 10 compression types at maximum ! *)
Protocol : Array [1..ProtocolCount] of ProtocolRecord; (* Sorry, 20 file transfer protocols at maximum ! *)
Bulletin : Array [1..BulletinCount] of BulletinRecord; (* Sorry, 5 bulletin conferences at maximum ! *)
LocalMoveDir : String [67]; (* Where to "download" msg packets when packed locally *)
SwapDir : String [67]; (* PTQWK swap file directory (preferably in ram disk) *)
NoTimeLeft : FreeMethods; (* How to handle downloads? *)
WhenOut : OutMethods; (* How to handle packet when carrier is lost etc. *)
MaxMsgsPack1 : Word; (* How many msgs to be packed at most on 300-1200 bps *)
MinDiskSpace : Word; (* Minimum disk space in kilobytes *)
ApproxExport : Byte; (* How long does it take to export 1000 msgs? *)
CheckAbort : Byte; (* In DV export, check for abort every n msgs, 0 = never *)
CombSortArea : Byte; (* Sort file areas by name or number *)
CombSortCnt : Byte; (* Sort methods count *)
CombCursor : Byte; (* How to handle cursor in file combined *)
Attrib1 : Word; (* Bit 00 = AllowFReqs : Boolean; TRUE if file requests are allowed *)
(* Bit 01 = DVPack : Boolean; TRUE if messages can be (un)packed in another window *)
(* Bit 02 = DVExport : Boolean; TRUE if messages can be tossed in another window *)
(* Bit 03 = UseMSGIDX : Boolean; TRUE if MSGIDX.BBS is used to scan msgs *)
(* Bit 04 = UseMSGINDEX : Boolean; TRUE if new msg index file is used *)
(* Bit 05 = AreaShow : Boolean; TRUE if file combined areas are shown at start? *)
(* Bit 06 = FlushBuffer : Boolean; TRUE if buffer is flushed after scr write at <2400bps *)
(* Bit 07 = LocalUser : Boolean; TRUE if WhoTo must exist in userbase in local msgs *)
MaxMsgsPack2 : Word; (* How many msgs to be packed at most on 2400-7200 bps *)
MaxMsgsPack3 : Word; (* How many msgs to be packed at most on 9600-38400 bps *)
O_KeepDays : Byte; (* Keep non-downloaded pkts n days; 0 = always *)
O_KeepPkts : Byte; (* Keep max n non-downloaded pkts; 0 = keep all *)
O_KeepSize : Word; (* Keep max n kb of non-downloaded pkts; 0 = keep all *)
ConvChars : Byte; (* With REPLIES. See below... *)
DupeMaxSize : Word; (* Duplicate msgs database entries; 0 = don't check dupes *)
DefaultBoard : Byte; (* QWK dupe board *)
DefaultNetAttr:Byte; (* Default net attribute; See SBBS structures *)
CarbonCopySec: Word; (* Minimum sec.lvl to use carbon copies or cross post *)
Empty : Array [1..276] of Byte; (* Empty space *)
end; (* Size 10000 bytes *)
(*
CombSortArea: Bytes 0-1 : Sort method 1
Bytes 2-3 : Sort method 2
00 = by number
01 = by name
CombCursor: 00 = no cursor
01 = cursor, don't move
02 = cursor, move last direction
03 = cursor, move to right
*)
ExportFormat = (_QWK, _Omen, _ASCII, _None);
UserInfo = Record (* PTQWKUSR.BBS *)
Deleted : Boolean; (* TRUE if user is marked to be deleted *)
Name : String [35]; (* User name *)
LastDate : String [8]; (* When user has used this door last *)
LastFileScan : String [8]; (* Last file scan date (MM-DD-YY) *)
Times : LongInt; (* How many times user has used this door *)
TotalPacked : LongInt; (* Total packed msgs count *)
LastPacked : Word; (* Last time packed msgs count *)
MaxMsgsPack : Word; (* How many messages to be packed at most *)
MsgMaxLength : Word; (* Message's maximum length in lines, otherwise splitted *)
WhereToPack : Where; (* Where to save packets *)
Format : ExportFormat; (* Export messages in this format by default *)
Packer : Char; (* Archive format *)
Protocol : Char; (* Default protocol *)
ConvChars : Byte; (* With MSG PACKETS. See below... *)
RightMargin : Byte; (* Right marginal in exported msgs, 0 if SBBS default *)
StrPointer : Integer; (* Pointer to PTQWKSTR.BBS (save string file) *)
FileCombined : Array [1..25] of Byte; (* File combined boards; bit mapped like message boards *)
Attrib1 : Word;
(* Bit 00 = UseCombined : Boolean; TRUE if only combined boards are saved to CONTROL.DAT *)
(* Bit 01 = SendWelcome : Boolean; TRUE if WELCOME.ANS/.ASC is sent to user *)
(* Bit 02 = SendNews : Boolean; TRUE if NEWS.ANS/.ASC is sent to user *)
(* Bit 03 = SendGoodbye : Boolean; TRUE if GOODBYE.ANS/.ASC is sent to user *)
(* Bit 04 = SendNewFiles : Boolean; TRUE if new files list is sent to user *)
(* Bit 05 = SendBulletin : Boolean; TRUE if updated bulletin files are sent to user *)
(* Bit 06 = SendEmptyQWK : Boolean; TRUE if mail packet is sent even if no msgs are found *)
(* Bit 07 = CreateIndex : Boolean; TRUE if index files are created and sent to user *)
(* Bit 08 = SendPointers : Boolean; TRUE if last read pointers are sent to user *)
(* Bit 09 = : Boolean; *)
(* Bit 10 = UpdatePtrs : Boolean; TRUE if pointers are updated when carrier is lost etc *)
(* Bit 11 = Hotkeys : Boolean; TRUE if hot keys are active *)
(* Bit 12 = Marked2Pers : Boolean; TRUE if marked msgs are flagged as personal msgs *)
(* Bit 13 = AlwsInclMail : Boolean; TRUE if new personal mail is always included *)
(* Bit 14 = AllAsMail : Boolean; TRUE if msgs to 'All' are considered as personal mail *)
(* Bit 15 = ShowNewMsgs : Boolean; TRUE if new messages on each area are SHOWN at start *)
Attrib2 : Word;
(* Bit 00 = OfflinePack : Boolean; TRUE if messages are packed offline to user *)
(* Bit 01 = DVPack : Boolean; TRUE if messages are (un)packed in another DV window *)
(* Bit 02 = DVExport : Boolean; TRUE if messages are tossed in another DV window *)
(* Bit 03 = MultiOutput : Boolean; TRUE if different msg areas are shown on own lines *)
(* Bit 04 = NoReInSubj : Boolean; TRUE if RE: is removed from subjects *)
(* Bit 05 = Received : Boolean; TRUE if personal mail is "received" when packed *)
(* Bit 06 = FirstMenu : Boolean; TRUE if PTQWK.MNU is run when entering BBS *)
(* Bit 07 = O_Netmail : Boolean; TRUE if offline packets are sent netmail (else local) *)
(* Bit 08 = NoOwnMsgs : Boolean; TRUE if own messages are NOT packed *)
Zone : Word; (* Net mail "zone" *)
Net : Word; (* Net mail "net" *)
Node : Word; (* Net mail "node" *)
OfflineDays : Byte; (* Bit 0 = Monday, Bit 1 = Tuesday, ... Bit 6 = Sunday *)
LastBulletScan : String [8]; (* Last bulletin scan date (MM-DD-YY) *)
MsgsPosted : Word; (* Msgs posted but not added to USERS.BBS *)
MinMsgsPack : Word; (* Minimum messages count to be packed *)
LanguageName : String [8]; (* Language name, defined in PTLNG.CTL *)
Empty : Array [1..65] of Byte; (* Empty space *)
end; (* Size 200 bytes *)
(*
ConvChars : Byte
Bit 0 = Convert 8-bit (PC) scandinavian characters åäöÅÄÖ
Bit 1 = Convert 7-bit scandinavian characters }{|][\
Bit 2 = Convert 8-bit (ISO) scandinavian characters σΣ÷┼─╓
Bit 3-4 = Convert to which format?
3=Off 4=Off (00) -> No convertion
3=On 4=Off (01) -> 8-bit (PC)
3=Off 4=On (10) -> 7-bit
3=On 4=On (11) -> 8-bit (ISO)
*)
UserInfoIndex = Record (* PTQWKUSR.IDX *)
NameCRC32 : LongInt; (* CRC32 of capitalized 8-bit user name *)
end; (* Size 4 bytes *)
NEWMSGIDX = Record (* MSGINDEX.BBS; see below *)
WhoFromCRC32: LongInt; (* CRC-32 of writer's capitalized name *)
WhoToCRC32: LongInt; (* CRC-32 of receiver's capitalized name *)
MsgAttrib: Byte; (* Msg attributes; see SBBS structures *)
NetAttrib: Byte; (* Net attributes; see SBBS structures *)
MsgBoard: Byte; (* Msg board number *)
Date: Word; (* High word from standard MS-DOS time format *)
MsgNumber: Word; (* Msg number *)
end; (* 15 bytes / record *)
(* ALL support for MSGINDEX.BBS is appreciated! *)
(* Other PTQWK data/configuration files:
DUPES.BBS, INCLUDE.CTL, NAMES.CTL, OFFLINE.CTL,
GROUPS.CTL, PTLNG.CTL, NETZONES.CTL, BBSID.PTR *)